In some networking environments, communication networks may be formed when multiple interoperable nodes communicating over a shared medium detect the existence of other nodes. One example of such a network is a network that operates in accordance with the Multimedia over Coax Alliance (“MoCA”) MAC/PHY Specification. In this network, nodes may function as “clients”. It should be noted that client nodes are sometimes referred to as “slave nodes”. In addition to client nodes, such networks also include at least one “Network Coordinator node” (NC). It should be noted that NCs are sometimes referred to as either “master nodes” or “network controller nodes”. A network will typically have a single NC and any number of client nodes. The NC may transmit beacons and Media Access Plans (“MAPs”) as well as other control information to manage the network.
To establish a system to allocate network bandwidth, the NC schedules times during which communication occurs over the network. The NC communicates the schedule to each client node in MAPs. Each MAP is a packet of information. One MAP is sent by the NC during each “MAP cycle”. FIG. 1 is a timing diagram that illustrates the timing relationship between MAPs 201, 202 and MAP cycles 203, 205. The MAP cycle 205 is defined as the communication activity on the channel under the control of the previously sent MAP 201. Accordingly, the MAPs 201 schedule all of the communication activity for the next MAP cycle 205 (only one such “next MAP cycle” 205 is shown in FIG. 1). It should be noted that the next MAP 202 is sent during the next MAP cycle 205 under the scheduling control of the previous MAP 201. Accordingly, MAPs 201, 202 determine the following information for each packet to be sent in the next MAP cycle 205: i) packet start time; ii) packet length; iii) source node; and iv) destination node(s). The combination of a packet start time, the packet length for the packet to be sent at that start time, and the source node and destination node for that packet are referred to herein as a “transmission slot assignment”.
One particular type of packet that the MAP 201, 202 is responsible for scheduling is a reservation request (RR) 207, 209, 211. Six such RRs are shown in the first MAP cycle 203 of FIG. 1, starting with the first RR 207 and ending with the last RR 209. One RR 211 is shown in the second MAP cycle 205. RRs 207, 209, 211 are sent by client nodes to indicate that the client node has packets that it wishes to send and thus to request that the NC schedule a time during a subsequent MAP cycle when the client node can send those packets. Accordingly, when a client node has information to transmit, the client node must first wait for the NC to allocate a time when the client node can send an RR 207, 209, 211. Once the NC has allocated a time during which the client node can sent an RR 207, 209, 211, the client node communicates the RR 207, 209, 211 to the NC at the time allocated (i.e., at the packet start time and for the packet length indicated by the MAP 201, 202). In some systems (not shown), an Orthogonal Frequency Division Multiple Access (OFDMA) scheme can be used. In such an OFDMA scheme, each of the RRs is modulated on a separate subcarrier and transmitted in the same transmission slot.
The RR 207, 209, 211 allows the client node to communicate to the NC that the client node has data packets it wishes to send. Furthermore, the RR 207, 209, 211 indicates the associated destination node(s), packet length, packet priority and so on for those data packets. The NC uses this information to schedule additional times during which the client node can transmit those additional data packets it wishes to send. The NC then communicates that schedule by generating and transmitting the MAP 201 having transmission slot assignments for the next MAP cycle 205.
Networks, such as MoCA networks and Ethernet-based networks, have an increasing need for more bandwidth. However, such networks are typically formed from physical channels that have a finite amount of bandwidth. For example, each physical channel in a MoCA network has a bandwidth of approximately 100 MHz. One method of increasing bandwidth for Ethernet networks is through channel bonding or link aggregation in which multiple Ethernet network cables and/or ports are combined in parallel to increase the throughput beyond the limits of any one single cable or port and to increase the redundancy and thus provide higher availability (i.e., reliability). However, known methods of channel bonding encounter difficulties in load-balancing the traffic among the multiple channels so that the data is evenly distributed.